package me.zhengjie.modules.account.factory.entity;

import com.alibaba.fastjson.JSONObject;
import me.zhengjie.modules.account.factory.vo.CheckPersonFees;
import me.zhengjie.modules.account.factory.vo.CollectBillBank;
import me.zhengjie.modules.sequence.domain.Sequence;
import me.zhengjie.modules.sequence.service.SequenceService;
import me.zhengjie.tool.*;
import me.zhengjie.vo.Constant;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;

/**
 * 单位职工核定领域
 *
 */
@Service
public class BaseUnitApprove {

    private final SequenceService sequenceService ;

    private static final long serialVersionUID = 1234567L;
    protected String aab001; // 单位编号
    protected String aab019; // 单位类型
    private String bab051; // 划型类别
    private String bab052; // 个体工商户类别
    protected String aab033; // 征收方式
    private String aaz040; // 单位参保情况id
    private String aaa149; // 单位行业风险类别
    private String aab020; // 经济类型
    private String aab021; // 隶属关系
    private String aab022; // 所属行业
    private String aac028; // 农民工标识
    private String bjc011; // 农民工是否缴费标识
    private String baz055; // 核定事件明细ID;
    private String bae041; // 单位核定业务类型;
    private String aab365; // 单位核定业务类型;
    private String aaz750; // 承担缴费主体编号;
    private String aae061; // 补退流水号
    private String aae140; // 险种类型
    private Integer aae002; // 费款所属期
    private Integer aae003; // 对应费款所属期
    private String aaa115; // 应缴类型
    private String aae793; // 地方应缴类型
    private String aae794; // 地方应缴类型名称
    private String aab359; // 参保地行政区划代码
    private String aae741; // 数据来源
    private String aaz615; // 核定流水号
    private String aaz616; // 核定批次号
    private String aaa093; // 承担缴费主体类型
    private String aae108; // 参加单位结算标志
    private String aae828; // 利息征收标志
    private String aae834; // 滞纳金征收标志
    private String aae737; // 缴费资金来源
    private String aae078; // 到账标志
    private String aae738; // 征集标志
    private String aae665; // 发送标志
    private String bae944; // 立即出单标识
    private String aae013; // 备注
    private String aaa121; // 业务类型
    private String aab191; // 到账时间
    private String aac337; // 缴费人员类别
    private String aaz625; // 征集流水号
    private String aae066; // 实收分配流水号
    private String aab004; // 单位名称
    private String aaz627;
    private String aaz650;
    private String aac001;
    private String aae734;
    private String aaz002;

    public String getAaz002() {
        return aaz002;
    }

    public void setAaz002(String aaz002) {
        this.aaz002 = aaz002;
    }

    public String getAae734() {
        return aae734;
    }

    public void setAae734(String aae734) {
        this.aae734 = aae734;
    }

    public BaseUnitApprove(SequenceService sequenceService) {
        this.sequenceService =sequenceService;
    }

    public SequenceService getSequenceService() {
        return sequenceService;
    }

    public String getAac001() {
        return aac001;
    }

    public void setAac001(String aac001) {
        this.aac001 = aac001;
    }

    public String getAaz627() {
        return aaz627;
    }

    public void setAaz627(String aaz627) {
        this.aaz627 = aaz627;
    }

    public String getAaz650() {
        return aaz650;
    }

    public void setAaz650(String aaz650) {
        this.aaz650 = aaz650;
    }

    public String getAab004() {
        return aab004;
    }

    public void setAab004(String aab004) {
        this.aab004 = aab004;
    }

    public String getAaz625() {
        return aaz625;
    }

    public void setAaz625(String aaz625) {
        this.aaz625 = aaz625;
    }

    public List<CheckPersonFees> getPersonFees() {
        return personFees;
    }

    public void setPersonFees(List<CheckPersonFees> personFees) {
        this.personFees = personFees;
    }

    public List<Map> getAccountList() {
        return accountList;
    }

    public void setAccountList(List<Map> accountList) {
        this.accountList = accountList;
    }

    //退费、核销、欠费补缴入参
    protected List<CheckPersonFees> checkDetails = new ArrayList<>();            //前台勾选的人员明细
    protected List<CheckPersonFees> personFees = new ArrayList<>();            //组装后的退费明细
    protected List<Map> documentList = new ArrayList<>(); // 装载业务单据生成事件信息
    protected Map collectMap; // 征集所需要的参数
    protected CollectBillBank collectBillBank; // 支出需要的银行信息
    protected List<Map> collectBillBankList; // 支出需要的银行信息
    protected List<Map> accountList; // 账户列表

    /**
     * 1、初始化参数
     *
     * @param param1
     */
    public void init(MyMap param1) {
        this.aab001 = param1.getAsString("aab001"); // 单位编号
        this.aac001 = param1.getAsString("aac001"); // 人员
        this.aae734 = param1.getAsString("aae734"); // 当事人名称
        this.aae140 = param1.getAsString("aae140"); // 险种
        this.aab033 = param1.getAsString("aab033"); // 征收方式
        this.aaz615 = param1.getAsString("aaz615");
        this.aaz616 = param1.getAsString("aaz616");
        this.aaz627 = param1.getAsString("aaz627");
        this.aaz650 = param1.getAsString("aaz650");
        this.aaz625 = param1.getAsString("aaz625");
        this.aae066 = param1.getAsString("aae066");
        this.aaz002 = param1.getAsString("aaz002");

        //AAE1 相关参数判断赋值
        setAaa115(param1.getAsString("aaa115")); //	应缴类型
        setAae793(param1.getAsString("aae793")); //	地方应缴类型
        setAae794(param1.getAsString("aae794")); //	地方应缴类型名称
        setAae828(param1.getAsString("aae828")); //	利息征收标志
        setAae834(param1.getAsString("aae834")); //	滞纳金征收标志
        setAaa093(param1.getAsString("aaa093")); //	承担缴费主体类型
        setAaz750(param1.getAsString("aaz750")); //	承担缴费主体编号
        setAae108(param1.getAsString("aae108")); //	参加单位结算标志
        if (!ValidateUtil.isEmpty(param1.get("registerPerson"))) {
            this.personFees = ListUtil.convertListMap2ListEntity((List<Map>) param1.get("registerPerson"),CheckPersonFees.class);
        }

        if (!ValidateUtil.isEmpty(param1.get("accountList"))) {
            this.accountList = JSONObject.parseArray(param1.get("accountList").toString(),Map.class);
        }

        // 利息、滞纳金判断(用户需求新增征收区分个人部分、单位部分、全部)
        if (!ValidateUtil.isEmpty(param1.get("bae938"))) {
            if (Constant.BAE938_03_QBBZS.equals(param1.getAsString("bae938"))) {
                setAae828(Constant.AAE828_0_F);
            } else {
                setAae828(Constant.AAE828_1_S);
            }
        }
        if (!ValidateUtil.isEmpty(param1.get("bae939"))) {
            if (Constant.BAE939_03_QBBZS.equals(param1.getAsString("bae939"))) {
                setAae834(Constant.AAE834_0_F);
            } else {
                setAae834(Constant.AAE834_1_S);
            }
        }
        if (!ValidateUtil.isEmpty(param1.get("bankInfo"))) {
            // 立即出单支出需要录入银行信息
            this.collectBillBank = (CollectBillBank) param1.get("bankInfo");
        }
    }

    /**
     * 2、注入需要单位信息
     * 人员信息含AB01、AB02的数据
     */
    public void registerCheckUnit(Map<String, MyMap> ab01Maps) {
        MyMap ab01Map = ab01Maps.get(getAab001() + this.getAae140());
        // 可自行在service中设置缓存
        if (ValidateUtil.isEmpty(ab01Map)) {
            ab01Map = new MyMap();
            Map ab01Param = new HashMap();
            ab01Param.put("aab001", this.getAab001());
            List<Map> ab01MapList = new ArrayList<>();
            if (ValidateUtil.isEmpty(ab01MapList) || ab01MapList.size() > 1) {
                throw new RuntimeException("获取单位信息失败出错！");
            }
            //20210828zhangchen 查询单位扩展信息
            Map param = new HashMap();
            param.put("aab001", ab01MapList.get(0).get("aab001"));
            List<Map> ab01exs = new ArrayList<>();
            //
            NPETool.isEmptyThrowException(ab01exs, "单位扩展信息aab001:" + ab01MapList.get(0).get("aab001"));
            ab01Map.putAll(ab01exs.get(0));
            ab01Map.putAll(ab01MapList.get(0));
            Map ab02Map = new HashMap();
            ab02Map.put("aab001", this.getAab001());
            ab02Map.put("aab359", this.getAab359());
            ab02Map.put("aae140", this.getAae140());
            List<Map> ab02MapList = new ArrayList<>();
            if (ValidateUtil.isEmpty(ab02MapList) || ab02MapList.size() > 1) {
                throw new RuntimeException("获取单位参保信息失败出错！");
            }
            ab01Map.putAll(ab02MapList.get(0));
            ab01Maps.put(ab01Map.getAsString("aab001") + ab01Map.getAsString("aae140"), ab01Map);
        }
        // 单位基本信息赋值
        this.aab019 = ab01Map.getAsString("aab019");
        this.aaz040 = ab01Map.getAsString("aaz040");
        this.aaa149 = ab01Map.getAsString("aaa149");
        this.aab033 = ab01Map.getAsString("aab033");
        this.bab051 = ab01Map.getAsString("bab051");
        this.bab052 = ab01Map.getAsString("bab052");
        this.aab020 = ab01Map.getAsString("aab020");
        this.aab021 = ab01Map.getAsString("aab021");
        this.aab022 = ab01Map.getAsString("aab022");
        this.aab365 = ab01Map.getAsString("aab365");
    }

    /**
     * 生成退费明细
     */
    public void initCheckDetailApprove(){
        NPETool.isEmptyThrowException(this.personFees,"人员缴费明细");
        // 组装退费明细

        AtomicReference<Long> aaz648 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz648")) + "000"));
        AtomicReference<Long> aaz061 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz061")) + "000"));
        AtomicReference<Long> aaz631 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz631")) + "000"));
        AtomicReference<Long> aaz650 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz650")) + "000"));

        this.personFees.stream().forEach(checkUnitFee -> {
            aaz648.getAndSet(aaz648.get() + 1);
            aaz061.getAndSet(aaz061.get() + 1);
            aaz631.getAndSet(aaz631.get() + 1);
            aaz650.getAndSet(aaz650.get() + 1);
            BigDecimal aab121 = checkUnitFee.getAab121().negate();
            BigDecimal aae180 = checkUnitFee.getAae180().negate();
            BigDecimal aae795 = checkUnitFee.getAae795().negate();
//            BigDecimal aae020 = checkUnitFee.getAae020().negate();
//            BigDecimal aae022 = checkUnitFee.getAae022().negate();
//            BigDecimal aae023 = checkUnitFee.getAae023().negate();
            String     aab191 = DateUtil.getCurrentTime("yyyyMMdd");
            String     aae150 = DateUtil.getCurrentTime("yyyyMM");
            BigDecimal aae080 = checkUnitFee.getAae080().negate();
            BigDecimal aae082 = checkUnitFee.getAae082().negate();
            BigDecimal aae083 = checkUnitFee.getAae083().negate();
            Integer aae202 = -checkUnitFee.getAae202();
            Integer aae002 = Integer.parseInt(DateUtil.getCurrentTime("yyyyMM"));
            String aaz616 = this.aaz616;
            String aaz615 = this.aaz615;
            Integer aae018 = Integer.parseInt(Constant.AAE108_0_F);
            String aaz625 = this.aaz625;
            String aae792 = Constant.AAE792_05_TF;
            String aae066 = this.aae066;
            Integer aae748 = Integer.parseInt(DateUtil.getCurrentTime("yyyyMM"));
            String aae822 = Constant.SFBZ_0_F;

            String aae013 = "人员退费";
            String aae036 = DateUtil.getStringCurDateTime();

            checkUnitFee.setAaz648(aaz648.toString());
            checkUnitFee.setAaz061(aaz061.toString());
            checkUnitFee.setAab121(aab121);
            checkUnitFee.setAae180(aae180);
            checkUnitFee.setAae795(aae795);
//            checkUnitFee.setAae020(aae020);
//            checkUnitFee.setAae022(aae022);
//            checkUnitFee.setAae023(aae023);
            checkUnitFee.setAab191(aab191);
            checkUnitFee.setAae150(aae150);
            checkUnitFee.setAae080(aae080);
            checkUnitFee.setAae082(aae082);
            checkUnitFee.setAae083(aae083);
            checkUnitFee.setAae202(aae202);
            checkUnitFee.setAaz616(aaz616);
            checkUnitFee.setAaz615(aaz615);
            checkUnitFee.setAae018(aae018);
            checkUnitFee.setAaz625(aaz625);
            checkUnitFee.setAae792(aae792);
            checkUnitFee.setAae066(aae066);
            checkUnitFee.setAae748(aae748);
            checkUnitFee.setAae822(aae822);
            checkUnitFee.setAaz631(aaz631.toString());
            checkUnitFee.setAaz650(aaz650.toString());
            checkUnitFee.setAae013(aae013);
            checkUnitFee.setAae036(aae036);
            checkUnitFee.setAae002(aae002);

        });

    }

    /**
     * 生成单据
     */
    public void createFinancialDocuments(List<BaseUnitApprove> baseUnitApprove){
        NPETool.isEmptyThrowException(this.collectBillBankList,"银行信息");
        NPETool.isEmptyThrowException(baseUnitApprove,"退费明细");
        // 按险种生成单据
        Map billMap = new HashMap();
        AtomicReference<Long> baz244 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("baz244")) + "0"));
        AtomicReference<Long> aaz617 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz617")) + "0"));
        AtomicReference<Long> aaz002 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz002")) + "0"));
        baseUnitApprove.stream().forEach(item ->{
            List<CheckPersonFees> fees =  item.getPersonFees();
            baz244.getAndSet(baz244.get() + 1);
            aaz617.getAndSet(aaz617.get() + 1);
            aaz002.getAndSet(aaz002.get() + 1);
            String aae140 = item.getAae140();
            String aab001 = item.getAab001();
            String aae072 = fees.get(0).getAaz625();
            String aaa028 = Constant.AAA028_11_DW;
            Integer aae002 = Integer.parseInt(DateUtil.getCurrentTime("yyyyMM"));
            BigDecimal aae080 = fees.stream().map(m -> ValidateUtil.isEmpty(m.getAae080()) ? BigDecimal.ZERO : m.getAae080()).reduce(BigDecimal.ZERO, BigDecimal::add);//单位应缴金额
            BigDecimal aae082 = fees.stream().map(m -> ValidateUtil.isEmpty(m.getAae082()) ? BigDecimal.ZERO : m.getAae082()).reduce(BigDecimal.ZERO, BigDecimal::add);//个人应缴金额
            BigDecimal aae719 = aae080.add(aae082).negate();

            billMap.put("baz244",baz244.toString());
            billMap.put("aae140",aae140);
            billMap.put("aae002",aae002);
            billMap.put("aaa039","2"); // 收支类型
            billMap.put("aae710",Constant.AAE710_6002_ZJTF);
            billMap.put("bae710",Constant.BAE710_600205_dwrytk);
            billMap.put("aae719",aae719);
            billMap.put("aaz617",aaz617.toString());
            billMap.put("aae072",aae072);
            billMap.put("bae038","AC08");
            billMap.put("aaa028",aaa028);
            billMap.put("aaz010",item.getAab001());
            billMap.put("aab001",item.getAab001());
            billMap.put("aae734",item.getAab004());
            billMap.put("aab004",item.getAab004());
            billMap.put("aab019",item.getAab019());
            billMap.put("aae718",Constant.SFBZ_1_S);
            // 银行
            List<MyMap> bankList_nows = ListUtil.list2MyMapLowerList(this.collectBillBankList);
            List<Map> bankList_now = bankList_nows.stream().filter(bank ->(aab001.equals(bank.getAsString("aab001")) && aae140.equals(bank.getAsString("aae140")))).collect(Collectors.toList());
            if (ValidateUtil.isEmpty(bankList_now)) {
                throw new RuntimeException("没有获取到【"+ aae140 + "】匹配的银行信息");
            }
            billMap.put("aaf200",bankList_now.get(0).get("aaf200"));
            billMap.put("aaf216",bankList_now.get(0).get("aaf216"));
            billMap.put("aaf217",bankList_now.get(0).get("aaf217"));
            billMap.put("aae668",bankList_now.get(0).get("aae668"));
            billMap.put("aae009",bankList_now.get(0).get("aae009"));
            billMap.put("aae010",bankList_now.get(0).get("aae010"));

            billMap.put("aae711",Constant.SFBZ_0_F);
            billMap.put("aae825",Constant.SFBZ_0_F);
            billMap.put("bad006",Constant.BAD006_01_WCL);
            billMap.put("aae456",Constant.AAE456_0_F);
            billMap.put("aab191",DateUtil.getCurrentTime("yyyyMMdd"));
            billMap.put("aae713","");
            billMap.put("aae151","1"); // 实收分配标志
            billMap.put("aae770",""); // 登账id
            billMap.put("aad080",aae140);
            billMap.put("aae860",DateUtil.getCurDateTime());
            billMap.put("aae011",""); // 经办人
            billMap.put("aaz692",""); // 经办人id
            billMap.put("aae036",DateUtil.getStringCurDateTime());
            billMap.put("aab034",""); // 经办机构编号
            billMap.put("aab360",""); // 经办机构
            billMap.put("aab359",""); // 经办机构
            billMap.put("aaf018","530000");
            billMap.put("aaa027","");
            billMap.put("aaz002",aaz002.toString());
            billMap.put("aaz005",aaz002.toString());
            billMap.put("baz617",""); // 单据批次号
            this.documentList.add(billMap);
        });

    };

    /**
     * 生成单据
     */
    public void createFinancialDocuments(){
        NPETool.isEmptyThrowException(this.accountList,"账户列表信息");
        // 按险种分组
        Map<String, List<Map>> groupByAae140 = this.accountList.stream().collect(Collectors.groupingBy(ac50 -> ac50.get("aaa119").toString()));

        // 按险种生成单据
        AtomicReference<Long> baz244 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("baz244")) + "0"));
        AtomicReference<Long> aaz617 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz617")) + "0"));
//        AtomicReference<Long> aaz002 = new AtomicReference<>(Long.valueOf(sequenceService.nextSequence(new Sequence("aaz002")) + "0"));
        for (Map.Entry<String, List<Map>> entry1 : groupByAae140.entrySet()) {
            List<Map> list1 = entry1.getValue();
            // 按建账原因分组
            Map<String, List<Map>> groupByAac062 = list1.stream().collect(Collectors.groupingBy(ac50 -> ac50.get("aac062").toString()));
            for (Map.Entry<String, List<Map>> entry : groupByAac062.entrySet()) {
                Map billMap = new HashMap();
                List<Map> list = entry.getValue();
                String aac062 = entry.getKey();
                List<MyMap> accounts = ListUtil.list2MyMapList(list);
                baz244.getAndSet(baz244.get() + 1);
                aaz617.getAndSet(aaz617.get() + 1);
//            aaz002.getAndSet(aaz002.get() + 1);
                String aab001 = this.aac001;
                String aae072 = sequenceService.nextSequence(new Sequence("aaz625"));
                String aaa028 = Constant.AAA028_20_RY;
                Integer aae002 = Integer.parseInt(DateUtil.getCurrentTime("yyyyMM"));
                BigDecimal aae238 = accounts.stream().map(m -> m.getAsBigDecimalNullToZero("aae238")).reduce(BigDecimal.ZERO, BigDecimal::add);//本金
                BigDecimal aae239 = accounts.stream().map(m -> m.getAsBigDecimalNullToZero("aae239")).reduce(BigDecimal.ZERO, BigDecimal::add);//利息
                BigDecimal aae240 = accounts.stream().map(m -> m.getAsBigDecimalNullToZero("aae240")).reduce(BigDecimal.ZERO, BigDecimal::add);//总金额
                BigDecimal aae719 = aae240;

                billMap.put("baz244", baz244.toString());
                billMap.put("aae140", aae140);
                billMap.put("aae002", aae002);
                billMap.put("aaa039", "2"); // 收支类型
                billMap.put("aae710", Constant.AAE710_6002_ZJTF);
                billMap.put("bae710", Constant.AAC062_1_RYXCB.equals(aac062)? Constant.BAE710_600205_dwrytk:Constant.BAE710_600205_GGQSDTF);
                billMap.put("aae719", aae719);
                billMap.put("aaz617", aaz617.toString());
                billMap.put("aae072", aae072);
                billMap.put("bae038", "AC50");
                billMap.put("aaa028", aaa028);
                billMap.put("aaz010", this.aac001);
                billMap.put("aac001", this.aac001);
                billMap.put("aac147", this.aac001);
                billMap.put("aae734", this.aae734);
                billMap.put("aab004", "");
                billMap.put("aab019", "");
                billMap.put("aae718", Constant.SFBZ_1_S);
                // 银行
                List<MyMap> bankList_nows = ListUtil.list2MyMapLowerList(this.collectBillBankList);
                List<Map> bankList_now = bankList_nows.stream().filter(bank -> (aac001.equals(bank.getAsString("aac001")))).collect(Collectors.toList());
                if (ValidateUtil.isEmpty(bankList_now)) {
                    throw new RuntimeException("没有获取到【" + aae140 + "】匹配的银行信息");
                }
                billMap.put("aaf200", bankList_now.get(0).get("aaf200"));
                billMap.put("aaf216", bankList_now.get(0).get("aaf216"));
                billMap.put("aaf217", bankList_now.get(0).get("aaf217"));
                billMap.put("aae668", bankList_now.get(0).get("aae668"));
                billMap.put("aae009", bankList_now.get(0).get("aae009"));
                billMap.put("aae010", bankList_now.get(0).get("aae010"));

                billMap.put("aae711", Constant.SFBZ_0_F);
                billMap.put("aae825", Constant.SFBZ_0_F);
                billMap.put("bad006", Constant.BAD006_01_WCL);
                billMap.put("aae456", Constant.AAE456_0_F);
                billMap.put("aab191", DateUtil.getCurrentTime("yyyyMMdd"));
                billMap.put("aae713", "");
                billMap.put("aae151", "1"); // 实收分配标志
                billMap.put("aae770", ""); // 登账id
                billMap.put("aad080", aae140);
                billMap.put("aae860", DateUtil.getCurDateTime());
                billMap.put("aae011", ""); // 经办人
                billMap.put("aaz692", ""); // 经办人id
                billMap.put("aae036", DateUtil.getStringCurDateTime());
                billMap.put("aab034", ""); // 经办机构编号
                billMap.put("aab360", ""); // 经办机构
                billMap.put("aab359", ""); // 经办机构
                billMap.put("aaf018", "530000");
                billMap.put("aaa027", "");
                billMap.put("aaz002", aaz002);
                billMap.put("aaz005", aaz002);
                billMap.put("baz617", ""); // 单据批次号
                this.documentList.add(billMap);
            }
        }
    };

    /**
     * 组装账户信息
     */
    public void createAccount(){
        accountList.forEach(item ->{
            item.put("aae100",Constant.AAE100_0_WX);
            item.put("aae237",DateUtil.getCurrentTime("yyyyMMdd"));
            item.put("aae368",Constant.AAE100_1_YX);
            item.put("aaz002",this.aaz002);
        });
    }

    public String getAab001() {
        return aab001;
    }

    public void setAab001(String aab001) {
        this.aab001 = aab001;
    }

    public String getAab019() {
        return aab019;
    }

    public void setAab019(String aab019) {
        this.aab019 = aab019;
    }

    public String getBab051() {
        return bab051;
    }

    public void setBab051(String bab051) {
        this.bab051 = bab051;
    }

    public String getBab052() {
        return bab052;
    }

    public void setBab052(String bab052) {
        this.bab052 = bab052;
    }

    public String getAab033() {
        return aab033;
    }

    public void setAab033(String aab033) {
        this.aab033 = aab033;
    }

    public String getAaz040() {
        return aaz040;
    }

    public void setAaz040(String aaz040) {
        this.aaz040 = aaz040;
    }

    public String getAaa149() {
        return aaa149;
    }

    public void setAaa149(String aaa149) {
        this.aaa149 = aaa149;
    }

    public String getAab020() {
        return aab020;
    }

    public void setAab020(String aab020) {
        this.aab020 = aab020;
    }

    public String getAab021() {
        return aab021;
    }

    public void setAab021(String aab021) {
        this.aab021 = aab021;
    }

    public String getAab022() {
        return aab022;
    }

    public void setAab022(String aab022) {
        this.aab022 = aab022;
    }

    public String getAac028() {
        return aac028;
    }

    public void setAac028(String aac028) {
        this.aac028 = aac028;
    }

    public String getBjc011() {
        return bjc011;
    }

    public void setBjc011(String bjc011) {
        this.bjc011 = bjc011;
    }

    public String getBaz055() {
        return baz055;
    }

    public void setBaz055(String baz055) {
        this.baz055 = baz055;
    }

    public String getBae041() {
        return bae041;
    }

    public void setBae041(String bae041) {
        this.bae041 = bae041;
    }

    public String getAab365() {
        return aab365;
    }

    public void setAab365(String aab365) {
        this.aab365 = aab365;
    }

    public String getAaz750() {
        return aaz750;
    }

    public void setAaz750(String aaz750) {
        this.aaz750 = aaz750;
    }

    public String getAae061() {
        return aae061;
    }

    public void setAae061(String aae061) {
        this.aae061 = aae061;
    }

    public String getAae140() {
        return aae140;
    }

    public void setAae140(String aae140) {
        this.aae140 = aae140;
    }

    public Integer getAae002() {
        return aae002;
    }

    public void setAae002(Integer aae002) {
        this.aae002 = aae002;
    }

    public Integer getAae003() {
        return aae003;
    }

    public void setAae003(Integer aae003) {
        this.aae003 = aae003;
    }

    public String getAaa115() {
        return aaa115;
    }

    public void setAaa115(String aaa115) {
        this.aaa115 = aaa115;
    }

    public String getAae793() {
        return aae793;
    }

    public void setAae793(String aae793) {
        this.aae793 = aae793;
    }

    public String getAae794() {
        return aae794;
    }

    public void setAae794(String aae794) {
        this.aae794 = aae794;
    }

    public String getAab359() {
        return aab359;
    }

    public void setAab359(String aab359) {
        this.aab359 = aab359;
    }

    public String getAae741() {
        return aae741;
    }

    public void setAae741(String aae741) {
        this.aae741 = aae741;
    }

    public String getAaz615() {
        return aaz615;
    }

    public void setAaz615(String aaz615) {
        this.aaz615 = aaz615;
    }

    public String getAaz616() {
        return aaz616;
    }

    public void setAaz616(String aaz616) {
        this.aaz616 = aaz616;
    }

    public String getAaa093() {
        return aaa093;
    }

    public void setAaa093(String aaa093) {
        this.aaa093 = aaa093;
    }

    public String getAae108() {
        return aae108;
    }

    public void setAae108(String aae108) {
        this.aae108 = aae108;
    }

    public String getAae828() {
        return aae828;
    }

    public void setAae828(String aae828) {
        this.aae828 = aae828;
    }

    public String getAae834() {
        return aae834;
    }

    public void setAae834(String aae834) {
        this.aae834 = aae834;
    }

    public String getAae737() {
        return aae737;
    }

    public void setAae737(String aae737) {
        this.aae737 = aae737;
    }

    public String getAae078() {
        return aae078;
    }

    public void setAae078(String aae078) {
        this.aae078 = aae078;
    }

    public String getAae738() {
        return aae738;
    }

    public void setAae738(String aae738) {
        this.aae738 = aae738;
    }

    public String getAae665() {
        return aae665;
    }

    public void setAae665(String aae665) {
        this.aae665 = aae665;
    }

    public String getBae944() {
        return bae944;
    }

    public void setBae944(String bae944) {
        this.bae944 = bae944;
    }

    public String getAae013() {
        return aae013;
    }

    public void setAae013(String aae013) {
        this.aae013 = aae013;
    }

    public String getAaa121() {
        return aaa121;
    }

    public void setAaa121(String aaa121) {
        this.aaa121 = aaa121;
    }

    public String getAab191() {
        return aab191;
    }

    public void setAab191(String aab191) {
        this.aab191 = aab191;
    }

    public String getAac337() {
        return aac337;
    }

    public void setAac337(String aac337) {
        this.aac337 = aac337;
    }

    public List<CheckPersonFees> getCheckDetails() {
        return checkDetails;
    }

    public void setCheckDetails(List<CheckPersonFees> checkDetails) {
        this.checkDetails = checkDetails;
    }

    public List<Map> getDocumentList() {
        return documentList;
    }

    public void setDocumentList(List<Map> documentList) {
        this.documentList = documentList;
    }

    public Map getCollectMap() {
        return collectMap;
    }

    public void setCollectMap(Map collectMap) {
        this.collectMap = collectMap;
    }

    public CollectBillBank getCollectBillBank() {
        return collectBillBank;
    }

    public void setCollectBillBank(CollectBillBank collectBillBank) {
        this.collectBillBank = collectBillBank;
    }

    public String getAae066() {
        return aae066;
    }

    public void setAae066(String aae066) {
        this.aae066 = aae066;
    }

    public List<Map> getCollectBillBankList() {
        return collectBillBankList;
    }

    public void setCollectBillBankList(List<Map> collectBillBankList) {
        this.collectBillBankList = collectBillBankList;
    }
}
